
        <html>
			<head>
			     <title>小议Linux安全防护(一) - Blood_Zero</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/%e8%bf%90%e7%bb%b4%e5%ae%89%e5%85%a8/11801">http://drops.wooyun.org/%e8%bf%90%e7%bb%b4%e5%ae%89%e5%85%a8/11801</a></h1>
				
      <p>
        <h1>0x00 前言</h1>

<hr />

<p>在linux服务器随处可见的网络环境中，网络运维人员保障Linux安全就成了必要条件。当然现在有很多的硬件防火墙以及WAF，但是那不是小资企业可以hold住的，本文从软件以及服务配置方面简单总结Linux安全防护。</p>

<h1>0x01 使用软件级别安全防护</h1>

<hr />

<h3>1、使用SELinux</h3>

<p>SELinux是用来对Linux进行安全加固的，它可以让你指定谁可以增加文件，谁只可以删除文件，或者谁还可以移动文件，从文件的层次上来说，它相当于一个ACL；</p>

<!--more-->

<p>配置文件：/etc/selinux/config (centos7系统)</p>

<p>状态：getenforce 与 setenforce命令可以修改</p>

<ul>
<li>disabled：关闭策略</li>
<li>permissive：启用SELinux但是即使违反了策略它也会让你继续操作；仅仅一个记录功能</li>
<li>enforcing：启用SELinux，违反策略时阻止你的操作</li>
</ul>

<p>查看文件标签：<code>ls -Z</code></p>

<p><img src="http://static.wooyun.org//drops/20160105/2016010511503124703116.png" alt="p1" /></p>

<p>在文件所属组的后面就是我们文件的标签，它表示SELinux对这个文件的策略</p>

<p>修改策略：chcon与semanage</p>

<p><img src="http://static.wooyun.org//drops/20160105/201601051150334819625.png" alt="p2" /></p>

<p>恢复文件标签：restorecon</p>

<p>常见场景分析：</p>

<p>当我们需要配置一个Web目录时，如果Web目录不是默认的目录，访问可能出现403</p>

<p>这个时候，我们需要将我们的Web目录的标签修改为<code>httpd_sys_content_t</code></p>

<p><img src="http://static.wooyun.org//drops/20160105/201601051150357672035.png" alt="p3" /></p>

<h3>2、使用iptables</h3>

<p>Iptables是一个应用框架，它允许用户为自己系统建立一个强大的防火墙。它是用来设置、维护和检查Linux内核中IP包过滤规则的。</p>

<p>配置文件：/etc/sysconfig/iptables-config (centos7系统)</p>

<p>这里贴出一个在博客园的关于iptables的使用：<br />
<a href="http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html">http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html</a></p>

<h3>3、使用firewall</h3>

<p>在centos7中，防火墙具备很强的软件防护功能，在默认程度上：</p>

<p><img src="http://static.wooyun.org//drops/20160105/201601051150372743644.png" alt="p4" /></p>

<p>默认开启了dhcpv6客户端以及ssh防火墙功能；</p>

<p>防火墙具备很多功能，同时他具备图形界面与命令行界面两种模式，对于基本的防火墙配置，个人推荐使用命令行模式，当我们需要配置一些负责的规则策略时，就可以使用我们的图形界面：</p>

<p><img src="http://static.wooyun.org//drops/20160105/201601051150398449454.png" alt="p5" /></p>

<h3>4、使用入侵检测系统</h3>

<p>IDS：入侵检测系统，在linux中有针对它的开源的入侵检测系统：Snort；</p>

<h1>0x02 安全配置服务</h1>

<hr />

<h3>1、SSH访问控制</h3>

<p>尽可能的取消telnet登录，采用ssh进行登录；</p>

<p>ssh配置文件：/etc/ssh/sshd_config</p>

<ul>
<li>修改默认端口：Port 10512</li>
<li>不允许使用空密码：PermitEmptyPasswords no</li>
<li>不允许root用户登录：PermitRootLogin no</li>
<li>不允许输入密码登录：PasswordAuthentication no (可以很好的防止爆破，但是如果密钥文件泄漏则会出现安全问题，当然可以通过其他方式来进行防御)</li>
<li>重新生成密钥：KeyRegenerationInterval 1h (如果我们使用密钥进行登陆，可以设置多少时间后密钥重新生成)</li>
<li>密钥加密方式：RSAAuthentication yes (是否使用RSA进行加密)</li>
</ul>

<h3>2、禁用不必要的服务及用户</h3>

<p>在我们的Linux系统中有很多用户不需要的服务和应用，然而这些服务还是会运行，这样会导致攻击者利用这些服务的漏洞来进行攻击，最好的办法就是停止这些服务。</p>

<p>比如我们的Linux服务器只是一台Web服务器，那么就不需要ftp、smtp等服务我们就可以关闭；当然我们也可以让服务不允许通过防火墙，这样通过防火墙来保护我们的服务器也可以。</p>

<table>
<thead>
<tr>
  <th align="left">任务</th>
  <th align="left">旧指令</th>
  <th align="left">新指令</th>
</tr>
</thead>
<tbody>
<tr>
  <td align="left">使某服务自动启动</td>
  <td align="left">chkconfig --level 3 httpd on</td>
  <td align="left">systemctl enable httpd.service</td>
</tr>
<tr>
  <td align="left">使某服务不自动启动</td>
  <td align="left">chkconfig --level 3 httpd off</td>
  <td align="left">systemctl disable httpd.service</td>
</tr>
<tr>
  <td align="left">检查服务状态</td>
  <td align="left">service httpd status</td>
  <td align="left">systemctl status httpd.service（服务详细信息） systemctl is-active httpd.service（仅显示是否 Active)</td>
</tr>
<tr>
  <td align="left">显示所有已启动的服务</td>
  <td align="left">chkconfig --list</td>
  <td align="left">systemctl list-units --type=service</td>
</tr>
<tr>
  <td align="left">启动某服务</td>
  <td align="left">service httpd start</td>
  <td align="left">systemctl start httpd.service</td>
</tr>
<tr>
  <td align="left">停止某服务</td>
  <td align="left">service httpd stop</td>
  <td align="left">systemctl stop httpd.service</td>
</tr>
<tr>
  <td align="left">重启某服务</td>
  <td align="left">service httpd restart</td>
  <td align="left">systemctl restart httpd.service</td>
</tr>
</tbody>
</table>

<p>在linux系统中，系统运行所必须的服务</p>

<table>
<thead>
<tr>
  <th align="left">服务名称</th>
  <th align="left">说明</th>
</tr>
</thead>
<tbody>
<tr>
  <td align="left">acpid</td>
  <td align="left">用于电源管理，对于笔记本和台式电脑很重要</td>
</tr>
<tr>
  <td align="left">apmd</td>
  <td align="left">高级电源能源管理服务，可用于监控电脑</td>
</tr>
<tr>
  <td align="left">kudzu</td>
  <td align="left">检测硬件是否变化的服务</td>
</tr>
<tr>
  <td align="left">crond</td>
  <td align="left">为Linux下自动安排的进程提供运行服务</td>
</tr>
<tr>
  <td align="left">iptables/firewall</td>
  <td align="left">Linux内置的防火墙</td>
</tr>
<tr>
  <td align="left">xinetd</td>
  <td align="left">支持多种网络服务的核心守护进程</td>
</tr>
<tr>
  <td align="left">syslog</td>
  <td align="left">记录系统的日志服务</td>
</tr>
<tr>
  <td align="left">network</td>
  <td align="left">网络服务，要用网必须启动这个服务</td>
</tr>
</tbody>
</table>

<p>同时，一台新的Linux操作系统中有很多我们用不到的角色用户，我们同样可以删除这些用户，或者将这些用户设置为不能登录系统；</p>

<p><img src="http://static.wooyun.org//drops/20160105/201601051150401105464.png" alt="p6" /></p>

<p>可被删除的用户：adm、lp、sync、shutdown、halt、operator、games</p>

<ul>
<li>userdel adm</li>
<li>groupdel adm</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20160105/201601051150429284973.png" alt="p7" /></p>

<p>可被删除的用户组：adm、lp、games、dip等；</p>

<p>当然具体的需要还是要根据用户的选择，同时我们也可以修改用户的bash文件禁止用户登录系统也是防护方式的一种。</p>

<pre><code>#!bash
usermod -s /sbin/nologin username
</code></pre>

<h3>3、使用全盘加密</h3>

<p>加密的数据更难被窃取，在安装Linux系统的时候我们可以对整个系统进行加密，采用这种方式，即使有人进入了我们的系统，也不能得到我们的数据；</p>

<h3>4、Web应用配置</h3>

<p>提供Web服务时，需要更新我们组件的补丁，防止利用已知漏洞来进行攻击；</p>

<p>严格限制权限，防止得到Web Shell以后直接得到系统权限；</p>

<p>限制Web用户只能访问Web目录，不能访问其他目录；</p>

<p>严格控制提供上传点的文件类型</p>

<p>等等</p>

<h3>5、系统安全</h3>

<p>使用su 与 sudo命令时：</p>

<ul>
<li>su：切换用户</li>
<li>sudo：提升权限，所以sudo是su的特定一种形态</li>
</ul>

<p>这里是指定可以使用su命令的用户</p>

<p><img src="http://static.wooyun.org//drops/20160105/201601051150442975283.png" alt="p8" /></p>

<p>注意红色圈起来的一行，就是启用<code>pam_shell</code>认证，这个时候没有加入wheel的用户就不能使用su命令了！</p>

<p><img src="http://static.wooyun.org//drops/20160105/201601051150466579093.png" alt="p9" /></p>

<p>对于sudo的一些配置<code>vim /etc/sudoers</code>在centos7中，如果你不想修改原来的配置文件，你可以将这一行<code>includedir /etc/sudoers.d</code>的注释去掉，然后在<code>/etc/sudoers.d/</code>目录下写我们的配置文件</p>

<p><img src="http://static.wooyun.org//drops/20160105/2016010511504795472103.png" alt="p10" /></p>

<p>删除提示信息</p>

<p>在linux的4个文件中存在提示系统的一些信息：</p>

<ul>
<li>/etc/issue,/etc/issue.net:这两个文件记录了操作系统的名称及版本号，用户通过本地终端就会显示/etc/issue文件中内容，通过ssh或telnet登录就会显示/etc/issue.net的文件内容；</li>
<li>/etc/redhat-release:这个文件也记录了操作系统名称和版本号；</li>
<li>/etc/motd:这个文件是系统的公告信息，每次用户登录后就会显示在终端上；</li>
</ul>

<p>未完待续~~~</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          